#pragma once
#include "data_structure.h"
// 初始化使用记录链表
void init_REList(REList* list);
// 创建使用记录
Record create_record(User* user, Facility* facility, char* year, char* month, char* day, char* begin_time, char* end_time,bool is_end);
// 创建使用记录节点
RENode* create_RENode(Record* record);

// 添加使用记录
void add_record(REList* list, Record* record);

//// 删除使用记录节点
//int delete_record(REList* list, int user_id, int facility_id);

//// 查找使用记录节点
//Record* find_record(REList* list, int user_id, int facility_id);

// 打印链表中的所有使用记录
void print_records(REList* list);

/**
	查找使用记录 用户Phone
	查找使用记录 场地ID
	查找使用记录 日期
	查找使用记录 日期+用户Phone
	查找使用记录 日期+场地ID
**/
// 打印场地信息
void print_record(RENode* renode);
// 查找使用记录 用户Phone
void search_record_by_phone(System sys);
// 查找使用记录 场地ID
void search_record_by_facility_id(System sys);
//查找使用记录 日期
void search_record_by_date(System sys);
//查找使用记录 日期 + 用户Phone
void search_record_by_phone_date(System sys);
//查找使用记录 日期 + 场地ID
void search_record_by_facility_id_date(System sys);

// 排序功能
//查看使用记录 Order by 日期
void sort_record_order_by_date(REList* list);
//查看使用记录 Order by 编号
void sort_record_order_by_id(REList* list);
//查看使用记录 Order by 用户名称
void sort_record_order_by_name(REList* list);
//查看使用记录 Order by 场地编号
void sort_record_order_by_facility_id(REList* list);

// 统计功能
// 使用记录总统计
void statistic_all_record(System sys);
// 使用记录统计 by user
void statistic_record_by_user(System sys);
// 使用记录统计 by facility
void statistic_record_by_facility(System sys);
// 使用记录统计 by date
void statistic_record_by_date(System sys);
// 使用记录统计 by user and facility
void statistic_record_by_user_facility(System sys);
// 使用记录统计 日期范围
void statistic_record_by_date_range(System sys);